home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / doc / libnet-dbus-perl / examples / example-signal-receiver.pl < prev    next >
Encoding:
Perl Script  |  2008-02-20  |  827 b   |  38 lines

  1. #!/usr/bin/perl -w
  2.  
  3. use warnings;
  4. use strict;
  5.  
  6. use Net::DBus;
  7. use Net::DBus::Reactor;
  8.  
  9. use Carp qw(confess cluck);
  10.  
  11. #$SIG{__WARN__} = sub { cluck $_[0] };
  12. #$SIG{__DIE__} = sub { confess $_[0] };
  13.  
  14. my $bus = Net::DBus->session();
  15.  
  16. my $service = $bus->get_service("org.designfu.TestService");
  17. my $object  = $service->get_object("/org/designfu/TestService/object",
  18.                    "org.designfu.TestService");
  19.  
  20. sub hello_signal_handler {
  21.     my $greeting = shift;
  22.     print "Received hello signal with greeting '$greeting'\n";
  23. }
  24.  
  25. $object->connect_to_signal("HelloSignal", \&hello_signal_handler);
  26.  
  27. my $reactor = Net::DBus::Reactor->main();
  28.  
  29. my $ticks = 0;
  30. $reactor->add_timeout(1000, Net::DBus::Callback->new(method => sub {
  31.     $object->emitHelloSignal();
  32.     if ($ticks++ == 10) {
  33.       $reactor->shutdown();
  34.     }
  35. }));
  36.  
  37. $reactor->run();
  38.